

package enterprise.jsf_jpa_war;

import enterprise.ent.Administradores;
import enterprise.ent.Country;
import enterprise.ent.Jugadores;
import enterprise.ent.Solicitudes;
import enterprise.ent.Torneos;
import enterprise.ent.Usuarios;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.servlet.http.HttpSession;
import javax.transaction.NotSupportedException;
import javax.transaction.Transactional;
import javax.transaction.UserTransaction;
import org.primefaces.context.RequestContext;
import org.primefaces.event.FileUploadEvent;  
import org.primefaces.model.UploadedFile;  

    
/**
 * <p>A simple managed bean to mediate between the user
 * and the persistence layer.</p>
 * @author rlubke
 */
@Named
public class actuDatos {
    /**
     * <p>The <code>PersistenceContext</code>.</p>
     */
    @PersistenceContext 
    private EntityManager em;
    
    /**
     * <p>The transaction resource.</p>
     */
    @Resource 
    private UserTransaction utx;
    
    Usuarios edUser;
    Administradores edAdmin;
    Jugadores edJugador;
    
    String oldEmail;

    public Usuarios getEdUser() {
        return edUser;
    }

    public void setEdUser(Usuarios edUser) {
        this.edUser = edUser;
    }

    public Administradores getEdAdmin() {
        return edAdmin;
    }

    public void setEdAdmin(Administradores edAdmin) {
        this.edAdmin = edAdmin;
    }

    public Jugadores getEdJugador() {
        return edJugador;
    }

    public void setEdJugador(Jugadores edJugador) {
        this.edJugador = edJugador;
    }
    
    public void ir_MisDatosPerfil(Long iduser){
        
        Query query = em.createNamedQuery("Usuarios.findByIdUsuario");
        Long paramLike = iduser;
        query.setParameter("idUsuario", paramLike);
        edUser = (Usuarios)query.getSingleResult();       
        oldEmail = edUser.getUserEmail();
        
        Map sMap;
        sMap = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
        BeanMenu bm = (BeanMenu) sMap.get("beanMenu");
        
        
        if(bm.esAdmin){
            query = em.createNamedQuery("Administradores.findByAdminUser");
            paramLike = iduser;
            query.setParameter("adminUser", paramLike);
            edAdmin = (Administradores)query.getSingleResult();
        }
        
        if(bm.esJugador){
            query = em.createNamedQuery("Jugadores.findByJugUser");
            paramLike = iduser;
            query.setParameter("jugUser", paramLike);
            edJugador = (Jugadores)query.getSingleResult();
        }
        
        bm.spagina = "misdatos/misdatos";
        
    }
    
    public String getNombreGenero(String genero){
        FacesContext context = FacesContext.getCurrentInstance();
        if(genero == "H"){
            return context.getApplication().evaluateExpressionGet(context, "#{msg.radio_hombre}", String.class);
        }else{
            return context.getApplication().evaluateExpressionGet(context, "#{msg.radio_mujer}", String.class);
        }
    }
    
    public void showMessageEmailChanged() {  
        
        String ConfirmarEmail = "Necesitarás confirmar tu nuevo email. Al guardar los cambios será enviado un email de confirmación."
                                + " Tu nuevo email no será actualizado hasta proceder con la confirmación.";
        
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Aviso", ConfirmarEmail);  
          
        RequestContext.getCurrentInstance().showMessageInDialog(message);  
    }  
    
}
    
   
 
